home *** CD-ROM | disk | FTP | other *** search
/ 8bitfiles.net/archives / archives.tar / archives / compuserve-file-archive / 18 Board & Card Games / GALEMP.BIN (.txt) < prev    next >
Encoding:
Commodore BASIC  |  2019-04-13  |  21.8 KB  |  647 lines

  1. 1 GOTO10
  2. 2 SAVE"SON",8:OPEN15,8,15:INPUT#15,A$,B$,C$,D$:CLOSE15
  3. 3 PRINT A$,B$,C$,D$:END
  4. 5 OPEN15,8,15:PRINT#15,"S0:PA":INPUT#15,A$,B$,C$,D$:PRINT A$;B$;C$;D$
  5. 6 PRINT#15,"R0:PA=SON":INPUT#15,A$,B$,C$,D$:PRINT"R0:PA=SON",A$;B$;C$;D$:CLOSE15
  6. 7 SAVE"SON",8:OPEN15,8,15:INPUT#15,A$,B$,C$,D$:PRINTA$;B$;C$;D$:CLOSE15:END
  7. 10 REM " ***                                ***
  8. 11 [143] " *** CHR$ALACTIC VALMPIRE !              ***
  9. 12 REM " ***                                ***
  10. 13 [143] " *** BY (null)AUL (null)ELLAM                 ***
  11. 14 REM " ***   105 [212]UTELA [200]EIGHTS [210]OAD      ***
  12. 15 [143] " ***   PEEKRANTFORD, (null)NTARIO           ***
  13. 16 REM " ***   [206]3[212] 1[193]4                      ***
  14. 17 [143] " ***                                ***
  15. 18 REM " *** [195]REDITS :                      ***
  16. 19 [143] " ***  - VALNTERPRISE SPRITES BY ???   ***
  17. 20 REM " ***     (FROM [212][208][213][199] DISK [196]4)        ***
  18. 21 [143] " ***  - RIGHT$DEA FROM A SIMILAR ATN(null)(null)(null)VAL   ***
  19. 22 REM " ***    GAME BY                     ***
  20. 23 [143] " ***      (null)RSINE VALNGINEERING &      ***
  21. 24 REM " ***      [208]OWERSOFT [201]NC.            ***
  22. 25 [143] " ***                                ***
  23. 95 REM" --- [204]INES 40000-40010 FOR COLOURS  ---
  24. 96 [143]"
  25. 100 S=54272:FOR A=S TO S+24:POKE A,0:NEXT:V=53248:POKE V+21,0
  26. 110 DIM WL$(40),WL%(40),LF%(10),HF%(10),DO$(20)
  27. 120 FOR A=1 TO 20:WL$(A)=CHR$(64+A):WL%(A)=A:NEXT
  28. 130 FOR A=21 TO 40:WL$(A)=CHR$(172+A):WL%(A)=44+A:NEXT
  29. 140 FOR A=0 TO 10:READ PC%(A),PC$(A):NEXT
  30. 150 POKE 53280,6:POKE 53281,15:PRINTCHR$(8)"[147]"
  31. 160 REM OPEN 2,8,2,"GE.ENTERPRISE.C,S,R"
  32. 170 REM FOR N=0 TO 62:INPUT#2,Q:POKE704+N,Q:NEXT
  33. 180 REM FOR N=0 TO 191:INPUT#2,Q:POKE832+N,Q:NEXT
  34. 190 CLOSE2
  35. 200 FOR A=0 TO 10:READ LF%(A),HF%(A):NEXT
  36. 210 DO$(0)="":FOR A=1 TO 20:DO$(A)=DO$(A-1)+"":NEXT
  37. 220 DEFFNDS(A)=SQR((WX%(P)-WX%(A))^2+(WY%(P)-WY%(A))^2)
  38. 230 D1$=PC$(0)+""
  39. 240 D2$=D1$+"":D3$=D2$+""
  40. 250 PN$(0)="[205]E !"
  41. 990 GOTO 20000
  42. 1000 REM $$$                        $$$
  43. 1001 REM $$$ SOUNDS                 $$$
  44. 1002 REM $$$                        $$$
  45. 1100 REM ***                        ***
  46. 1101 REM *** ATTACKER'S FIRE        ***
  47. 1102 REM ***                        ***
  48. 1110 POKE S+5, 9:POKE S+6,20 :POKE S+24,15:POKE S+1,3 :POKE S,200
  49. 1120 POKE S+4,33:FOR TM=1 TO 1  :NEXT:POKE S+4,0
  50. 1130 RETURN
  51. 1200 REM ***                        ***
  52. 1201 REM *** DEFENDER'S FIRE        ***
  53. 1202 REM ***                        ***
  54. 1210 POKE S+5, 9:POKE S+6,20 :POKE S+24,10:POKE S+1,10:POKE S,200
  55. 1215 POKE S+2,16:POKE S+3,4
  56. 1220 POKE S+4,33:FOR TM=1 TO 1  :NEXT:POKE S+4,0
  57. 1230 RETURN
  58. 1300 REM ***                        ***
  59. 1301 REM *** EXPLOSION OF HIT       ***
  60. 1302 REM ***                        ***
  61. 1310 POKE S+5,9:POKE S+6,0:POKE S+24,10:POKE S+1,40:POKE S,200
  62. 1320 POKE S+4,129:FOR TM=1 TO 1  :NEXT:POKE S+4,0
  63. 1330 RETURN
  64. 1600 REM ***                        ***
  65. 1601 REM *** INPUT MISTAKE          ***
  66. 1602 REM ***                        ***
  67. 1610 POKE S+5,41:POKE S+6,249:POKE S+24,10:POKE S+1,15:POKE S,200
  68. 1615 FOR NT=1 TO 2
  69. 1620 FOR LP=1 TO 40 STEP 2:POKE S+4,33:POKES+4,32
  70. 1625 IF LP<21 THEN POKE S+1,15+LP:GOTO 1627
  71. 1626 POKE S+1,55-LP
  72. 1627 NEXT:POKE S+1,20:NEXT:POKES+4,0
  73. 1630 RETURN
  74. 1700 REM ***                        ***
  75. 1701 REM *** BATTLE STATIONS        ***
  76. 1702 REM ***                        ***
  77. 1710 POKE S+5,41:POKE S+6,249:POKE S+24,12:POKE S+1,20:POKE S,200
  78. 1715 FOR NT=1 TO 4
  79. 1720 FOR LP=1 TO 40:POKE S+4,33
  80. 1725 POKE S+1,20+LP
  81. 1730 NEXT:POKE S+1,20:NEXT:POKE S+4,0
  82. 1740 RETURN
  83. 1800 REM ***                        ***
  84. 1801 REM *** TELETYPE (1 PING)      ***
  85. 1802 REM ***                        ***
  86. 1810 POKE S+5,21:POKE S+6,0:POKE S+24,15:POKE S+1,7 :POKE S,50
  87. 1811 POKE S+12,21:POKE S+13,0:POKE S+8,100:POKE S+7,50
  88. 1815 POKE S+2,0:POKE S+3,15
  89. 1820 POKE S+4,65:POKE S+11,129:FOR TM=1 TO 1 :NEXT:POKE S+4,0:POKE S+11,0:RETURN
  90. 2000 REM ***                        ***
  91. 2001 REM *** WORLD CHARACTER INPUT  ***
  92. 2002 REM ***                        ***
  93. 2010 WAIT 198,1:GET IN$
  94. 2020 IF IN$="?" OR IN$=CHR$(13) OR IN$="*" THEN RETURN
  95. 2030 IF ASC(IN$)>64 AND ASC(IN$)<85 THEN U=ASC(IN$)-64:RETURN
  96. 2040 IF ASC(IN$)>192 AND ASC(IN$)<213 THEN U=ASC(IN$)-172:RETURN
  97. 2050 U=-1:RETURN
  98. 2100 REM ***                        ***
  99. 2101 REM *** NUMERICAL INPUT        ***
  100. 2102 REM ***                        ***
  101. 2110 U=0
  102. 2120 GET IN$:IF IN$=""THEN 2120
  103. 2130 IF IN$="?" OR IN$=CHR$(13) THEN RETURN
  104. 2140 IF ASC(IN$)>47 AND ASC(IN$)<58 THEN U=10*U+ASC(IN$)-48:V=-1:GOTO 2120
  105. 2160 U=-1:RETURN
  106. 3000 REM ***                        ***
  107. 3001 REM *** PLAYER'S INPUT         ***
  108. 3002 REM ***                        ***
  109. 3030 W=1
  110. 3040 IF WC%(W)=P THEN 3100
  111. 3050 W=W+1:IF W<=WN THEN 3040
  112. 3060 PRINTD1$"[193]DMIRAL "PC$(P)PN$(P)D2$"CONTROLS NO WORLDS"
  113. 3070 GOSUB 1600:FOR TM=1 TO 1   :NEXT:GOSUB 30950:RETURN
  114. 3100 PRINTD1$"[193]DMIRAL "PC$(P)PN$(P)PC$(0)":"D2$"[207]RIGIN OF FLEET ?"
  115. 3110 GOSUB 2000
  116. 3120 IF IN$="?" THEN GOSUB 9000:GOTO 3000
  117. 3125 IF IN$="*" THEN GOSUB 8000:GOTO 3000
  118. 3130 IF IN$=CHR$(13) THEN GOSUB 30950:RETURN
  119. 3135 IF U<0 THEN 3215
  120. 3140 IF WC%(U)=P THEN 3180
  121. 3160 PRINTD3$"[212]HAT'S NOT YOURS!":GOSUB 1600:GOSUB 30950:GOTO 3100
  122. 3180 WR=U:PRINTD2$"[196]ESTINATION ?    "
  123. 3190 GOSUB 2000
  124. 3200 IF IN$="?" THEN GOSUB 9000:GOTO 3000
  125. 3210 IF IN$=CHR$(13) THEN GOSUB 30950:GOTO 3100
  126. 3215 IF U<0 THEN PRINTD3$"[201]NVALID [193]NSWER!":GOSUB 1600:GOSUB 30950:GOTO 3100
  127. 3220 WD=U:V=0:PRINTD2$"# OF SHIPS ? "
  128. 3230 GOSUB 2100
  129. 3240 IF IN$="?" THEN GOSUB 9000:GOTO 3000
  130. 3250 IF U<0 THEN 3215
  131. 3255 IF V=0 AND IN$=CHR$(13)THEN U=WS%(WR):GOTO 3270
  132. 3260 IF U=0 THEN 3215
  133. 3265 IF U>WS%(WR) THEN PRINTD3$"[206]OT ENOUGH THERE!":GOSUB 1600:GOSUB 30950:GOTO 3100
  134. 3270 GOSUB 30950:FM=U:GOSUB 4000
  135. 3280 IF F<=100 THEN 3100
  136. 3999 RETURN
  137. 4000 REM ***                        ***
  138. 4001 REM *** TRANSFER SHIPS FROM    ***
  139. 4002 REM *** WORLD TO FLEET         ***
  140. 4003 REM ***                        ***
  141. 4010 F=1
  142. 4020 IF FC%(F)<>0 THEN 4050
  143. 4030 WS%(WR)=WS%(WR)-FM:FC%(F)=P:FD%(F)=WD:FS%(F)=FM
  144. 4040 Z=P:P=WR:FT%(F)=T+(FNDS(WD)+.99)/3:P=Z:RETURN
  145. 4050 F=F+1:IF F<=100 THEN 4020
  146. 4060 PRINTD1$"[215]ORKER'S STRIKE"D2$"HALTS ALL FLEET"D3$"LAUNCHES !":GOSUB 1600
  147. 4070 GOSUB 30950:P%(0)=PN:RETURN
  148. 5000 REM ***                        ***
  149. 5001 REM *** ARRIVAL OF FLEET       ***
  150. 5002 REM ***                        ***
  151. 5010 W=FD%(F):DE=WS%(W):AK=FS%(F)
  152. 5012 PS=983+40*WY%(W)+WX%(W)
  153. 5014 FOR I=1 TO 10
  154. 5016 POKE PS,PEEK(PS)+128
  155. 5018 POKE PS,PEEK(PS)-128
  156. 5019 NEXT
  157. 5020 IF FC%(F)=WC%(W) THEN 5400
  158. 5100 REM ***                        ***
  159. 5101 REM *** ATTACK                 ***
  160. 5102 REM ***                        ***
  161. 5110 PRINTD1$;"[193]TTACK ON WORLD ";WL$(W);"!"
  162. 5120 PRINTD2$;:CC$="[196]EFENDER:":GOSUB 5900:PRINTPC$(WC%(W));:CC$=PN$(WC%(W))
  163. 5125 GOSUB 5900
  164. 5130 PRINTD3$;:CC$="[193]TTACKER:":GOSUB 5900:PRINTPC$(FC%(F));:CC$=PN$(FC%(F))
  165. 5135 GOSUB 5900:GOSUB 1700
  166. 5140 PRINTD2$"S: ";:W2=W:GOSUB 30910:PRINT"   "
  167. 5150 PRINTD3$"S: ";:W2=0:WS%(W2)=AK:GOSUB 30910:PRINT"   "
  168. 5155 IF DE=0 THEN GOSUB 5700:GOTO 5300
  169. 5160 I=0:X=1:REM DEFENDER FIRES
  170. 5170 I=I+1:X=X+1:IF X=20 THEN GOSUB 1200:X=1
  171. 5180 IF RND(0)>G1*AK/(AK+DE)+G2 THEN 5200
  172. 5190 GOSUB 1300:AK=AK-1:PRINTD3$"";:W2=0:WS%(0)=AK:GOSUB 30910
  173. 5200 IF AK=0 THEN GOSUB 5800:GOTO 5300
  174. 5210 IF I<DE THEN 5170
  175. 5220 I=0:X=1:REM ATTACKER FIRES
  176. 5230 I=I+1:X=X+1:IF X=20 THEN GOSUB 1100:X=1
  177. 5240 IF RND(0)>G1*DE/(AK+DE)+G2 THEN 5260
  178. 5250 GOSUB 1300:DE=DE-1:PRINTD2$"";:W2=0:WS%(0)=DE:GOSUB 30910
  179. 5260 IF DE=0 THEN GOSUB 5600:GOTO 5300
  180. 5270 IF I<AK THEN 5230
  181. 5280 GOTO 5160
  182. 5300 FC%(F)=0:GOSUB 30950:RETURN
  183. 5400 REM ***                        ***
  184. 5401 REM *** REINFORCEMENTS         ***
  185. 5402 REM ***                        ***
  186. 5410 PRINTD1$;:CC$="[215]ORLD "+WL$(W)+":":PRINT CC$:REM GOSUB 5900
  187. 5420 CC$=MID$(STR$(AK),2)+" REINFORCEMENT":IF AK>1 THEN CC$=CC$+"S"
  188. 5425 PRINTD2$;:PRINT CC$:REM GOSUB 5900
  189. 5430 CC$="HAVE ":IF AK=1 THEN CC$="HAS "
  190. 5435 PRINTD3$;CC$;:CC$="ARRIVED":GOSUB 5900
  191. 5440 WS%(W)=DE+AK:W2=W:PRINTDO$(W-20*INT(W/21))SPC(25+10*INT(W/21));:GOSUB 30910
  192. 5450 GOTO 5300
  193. 5600 REM ***                        ***
  194. 5601 REM *** OUTCOME MESSAGES       ***
  195. 5602 REM ***                        ***
  196. 5610 GOSUB 30950
  197. 5620 PRINTD1$;:CC$="[212]HE ATTACKERS WON!":GOSUB 5900
  198. 5630 WC%(W)=FC%(F):WS%(W)=AK:POKE 55255+40*WY%(W)+WX%(W),PC%(WC%(W))
  199. 5640 PRINTDO$(W-20*INT(W/21))SPC(21+10*INT(W/21))PC$(WC%(W))WL$(W)PC$(0);
  200. 5650 W2=W:GOSUB 30900:RETURN
  201. 5700 GOSUB 30950
  202. 5710 PRINTD1$;:CC$="[212]HE ATTACKERS WON":GOSUB 5900:PRINTD2$;
  203. 5720 CC$="WITHOUT A FIGHT !":GOSUB 5900:GOTO 5630
  204. 5800 GOSUB 30950
  205. 5810 PRINTD1$;:CC$="[212]HE DEFENDERS":GOSUB 5900:PRINTD2$;:CC$="SURVIVED THE":GOSUB 5900
  206. 5820 PRINTD3$;:CC$="ATTACK!":GOSUB 5900:WS%(W)=DE:IF WC%(W)<>0 THEN GOTO 5640
  207. 5830 RETURN
  208. 5900 REM ***                        ***
  209. 5901 REM *** TAP OUT MESSAGE        ***
  210. 5902 REM ***                        ***
  211. 5910 FOR LP=1 TO LEN(CC$)
  212. 5915 PRINTMID$(CC$,LP,1);:GOSUB 1800
  213. 5920 NEXT:RETURN
  214. 6000 REM ***                        ***
  215. 6001 REM *** BUILD SHIPS            ***
  216. 6002 REM ***                        ***
  217. 6010 FOR W2=1 TO WN
  218. 6020 IF AB=0 AND WC%(W2)=0 THEN 6100
  219. 6030 WS%(W2)=WS%(W2)+WI%(W2)
  220. 6040 IFWC%(W2)>0THENPRINTDO$(W2-20*INT(W2/21))SPC(25+10*INT(W2/21))PC$(0);:GOSUB30910
  221. 6100 NEXT W2:RETURN
  222. 7000 REM ***                        ***
  223. 7001 REM *** MOVE FLEETS            ***
  224. 7002 REM ***                        ***
  225. 7010 FOR F=1 TO 100
  226. 7020 IF FC%(F)=0 THEN 7040
  227. 7030 IF FT%(F)<T THEN GOSUB 5000
  228. 7040 NEXT F:RETURN
  229. 8000 REM ***                        ***
  230. 8001 REM ***'STANDING ORDER'OPTIONS ***
  231. 8002 REM ***                        ***
  232. 8010 PRINTPC$(3)"[147]     ' [211][212][193][206][196][201][206][199][160][207][210][196][197][210] ' OPTIONS"
  233. 8020 PRINT"     [162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162]"
  234. 8030 PRINTPC$(1)"    A[157]C[157]G[157]M[157]R"
  235. 8040 PRINTPC$(0)TAB(6)"- [193]DD '[211]TANDING [207]RDERS' "
  236. 8050 PRINTPC$(0)TAB(6)"- [195]ANCEL ALL '[211]TANDING [207]RDERS' "
  237. 8060 PRINTTAB(6)"- [199]O BACK TO PLAYING THE GAME"
  238. 8070 PRINTTAB(6)"- [205]ODIFY ONE '[211]TANDING [207]RDER' "
  239. 8080 PRINTTAB(6)"- [210]EVIEW ALL '[211]TANDING [207]RDERS' "
  240. 8090 PRINTPC$(3)"       [215]HICH OPTION DO YOU WANT ?"
  241. 8095 SC=P:WAIT 198,1:GET IN$
  242. 8100 IF IN$="A" THEN GOSUB 8300:GOTO8000
  243. 8110 IF IN$="C" THEN GOSUB 8600:GOTO 8095
  244. 8120 IF IN$="G" THEN GOSUB 30000:RETURN
  245. 8130 IF IN$="M" THEN GOSUB 8400:GOTO 8000
  246. 8140 IF IN$="R" THEN GOSUB 8200:GOTO 8000
  247. 8150 IF IN$=CHR$(13) THEN GOSUB 30000:RETURN
  248. 8160 GOSUB 1600:GOTO 8000
  249. 8200 PRINTPC3$"[147][207]RDER #   [198]ROM      [212]O      # OF SHIPS"
  250. 8210 FORI=1 TO 20:S1$="@":S2$="@"
  251. 8220 IF SO(P,I,1)<21 THEN S1$=CHR$(SO(P,I,1)+64):GOTO 8230
  252. 8225 IF SO(P,I,1)>20 THEN S1$=CHR$(SO(P,I,1)+76)
  253. 8230 IF SO(P,I,2)<21 THEN S2$=CHR$(SO(P,I,2)+64):GOTO 8240
  254. 8235 IF SO(P,I,2)>20 THEN S2$=CHR$(SO(P,I,2)+76)
  255. 8240 IF S1$="@" THEN S1$=" ":S2$=" "
  256. 8250 PRINT I,S1$,S2$,SO(P,I,3):NEXT I
  257. 8270 PRINT "[208]RESS ANY KEY TO CONTINUE"
  258. 8280 WAIT 198,1:POKE 198,0:RETURN
  259. 8300 GOSUB30000
  260. 8310 GOSUB30950:PRINTD1$"[193]DMIRAL "PC$(P)PN$(P)PC$(0)":"
  261. 8320 U=0:FOR X=1 TO 20:IF SO(P,X,3)<>0 THEN NEXT X:GOTO 8325
  262. 8322 GOTO8328
  263. 8325 PRINTD2$;:CC$="20 [211]TANDING [207]RDERS":GOSUB 1600:GOSUB 5900:RETURN
  264. 8328 S3$=CHR$(X+48):IF X>9 THEN I=X-10:S3$="1"+CHR$(I+48):IF X=20 THEN S3$="20"
  265. 8330 PRINTD2$;:CC$="#"+S3$+" [211]TANDING [207]RDER":GOSUB 5900
  266. 8340 FOR I=1TO3:SO(P,X,I)=0:NEXT I:GOSUB 30950
  267. 8360 GOSUB 8800:IF U<0 THEN RETURN
  268. 8380 SO(P,X,1)=SR:SO(P,X,2)=SD:SO(P,X,3)=SN
  269. 8390 SR=0:SD=0:U=0:SN=0:GOTO 8310
  270. 8400 GOSUB30000
  271. 8405 GOSUB30950:PRINTD1$"[193]DMIRAL "PC$(P)PN$(P)PC$(0)":"
  272. 8410 PRINTD2$;"[211]TANDING [207]RDER #?":X=0
  273. 8420 GOSUB 2100:IF U<0 THEN 8405
  274. 8430 IF U=0 THEN GOSUB 30950:RETURN
  275. 8440 X=U:IF X<=20 THEN GOTO 8460
  276. 8450 PRINTD3$"[201]NVALID ANSWER!":GOSUB 1600:GOTO 8405
  277. 8460 FOR I=1TO3:SO(P,X,I)=0:NEXT I
  278. 8470 GOSUB 8800:IF X=-1 THEN GOTO 8405
  279. 8480 SO(P,X,1)=SR:SO(P,X,2)=SD:SO(P,X,3)=SN
  280. 8490 SR=0:SD=0:U=0:SN=0:GOTO 8405
  281. 8500 REM EXECUTE SUBROUTINE
  282. 8510 FORI=1 TO 20:S3$="":IF SO(P,I,1)=0 THEN GOTO8560
  283. 8520 WR=SO(P,I,1):WD=SO(P,I,2):FM=SO(P,I,3)
  284. 8525 IF WS%(WR)=>FM AND WC%(WR)=P THEN GOTO 8550
  285. 8530 GOSUB30950:PRINTD1$"[193]DMIRAL "PC$(P)PN$(P)PC$(0)":"
  286. 8535 S3$=CHR$(I+48):IF I>9 THEN X=I-10:S3$="1"+CHR$(X+48)
  287. 8538 IF I=20 THEN S3$="20"
  288. 8540 PRINTD2$;:CC$="[194]AD [207]RDER #"+S3$:GOSUB 5900 : GOTO 8560
  289. 8550 GOSUB 4000
  290. 8560 NEXT I
  291. 8590 RETURN
  292. 8600 REM CANCEL ALL S. O.'S
  293. 8610 FOR X=1 TO 20
  294. 8620 FOR I=1TO3:SO(P,X,I)=0:NEXT I
  295. 8630 NEXT X:PRINT "[193]LL [211]TANDING [207]RDERS [197]RASED! ":GOSUB 1800:GOSUB 1800:RETURN
  296. 8800 PRINTD1$"[193]DMIRAL "PC$(P)PN$(P)PC$(0)":"D2$"[207]RIGIN OF FLEET ?"
  297. 8810 GOSUB 2000
  298. 8812 IF IN$=CHR$(13) THEN GOSUB 30950:U=-1:RETURN
  299. 8815 IFU<0THENPRINTD3$"[201]NVALID [193]NSWER!":GOSUB1600:GOSUB30950:SR=0:SD=0:GOTO8800
  300. 8830 IF WC%(U)=P THEN 8850
  301. 8840 PRINTD3$"[212]HAT'S NOT YOURS!":GOSUB 1600:GOSUB 30950:GOTO 8800
  302. 8850 SR=U:PRINTD2$"[196]ESTINATION ?    "
  303. 8860 GOSUB 2000
  304. 8870 IF IN$=CHR$(13) THEN U=-1:RETURN
  305. 8880 SD=U:V=0:PRINTD2$"# OF SHIPS ? "
  306. 8890 GOSUB 2100
  307. 8900 IF U<0 THEN 8815
  308. 8910 IF V=0 AND IN$=CHR$(13)THEN U=WI%(SR):GOTO 8930
  309. 8920 IFU>WS%(SR)THENPRINTD3$"[206]OT ENOUGH THERE!":GOSUB 1600:GOSUB 30950:GOTO 8800
  310. 8925 IF U=0 THEN 8815
  311. 8930 GOSUB 30950:SN=U
  312. 8940 RETURN
  313. 8950 U=-1:RETURN
  314. 9000 REM ***                        ***
  315. 9001 REM *** HELP & UTILITY OPTIONS ***
  316. 9002 REM ***                        ***
  317. 9010 PRINTPC$(3)"[147]        [200]ELP / [213]TILITY OPTIONS"
  318. 9020 PRINT"        [162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162]"
  319. 9030 PRINTPC$(1)"    C[157]E[157]G[157]Q[157]R"
  320. 9040 PRINTPC$(0)TAB(6)"- [195]HANGE THE # OF TURNS"
  321. 9050 PRINTTAB(6)"- [197]ND THE GAME (FOR EVERYONE)"
  322. 9060 PRINTTAB(6)"- [199]O BACK TO PLAYING THE GAME"
  323. 9070 PRINTTAB(6)"- [209]UIT THE GAME (1 PERSON)"
  324. 9080 PRINTTAB(6)"- [210]EVIEW THE INSTRUCTIONS"
  325. 9090 PRINTPC$(3)"       [215]HICH OPTION DO YOU WANT ?"
  326. 9095 WAIT 198,1:GET IN$
  327. 9100 IF IN$="E" THEN GOSUB 10000:END
  328. 9110 IF IN$="R" THEN GOSUB 27000:GOTO 9000
  329. 9120 IF IN$="Q" THEN GOSUB 9200
  330. 9130 IF IN$="G" THEN GOSUB 30000:RETURN
  331. 9140 IF IN$="C" THEN GOSUB 9300:GOTO 9000
  332. 9145 IF IN$=CHR$(13) THEN GOSUB 30000:RETURN
  333. 9150 GOSUB 1600:GOTO 9000
  334. 9200 GOSUB 10000:END:REMOVED BAD CODE!!
  335. 9300 PRINTPC$(0)"[147][201]T IS NOW YEAR"T
  336. 9310 PRINT"[212]HERE WERE TO HAVE BEEN"TN" YEARS IN":PRINT"TOTAL."
  337. 9320 PRINTPC$(3)"[200]OW MANY YEARS DO YOU WANT NOW"
  338. 9330 PRINT"("MID$(STR$(T+1),2)"-100)   99[157][157][157][157]";:INPUT TT
  339. 9340 IF TT<T+1 OR TT>100 THEN GOSUB 1600:GOTO 9300
  340. 9350 TN=TT:RETURN
  341. 9999 RETURN
  342. 10000 REM ***                       ***
  343. 10001 REM *** END OF GAME           ***
  344. 10002 REM ***                       ***
  345. 10010 PRINTPC$(3)"[147] [198]INAL STATISTICS :"
  346. 10020 PRINT" [162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162]"
  347. 10025 PRINTPC$(0)"[193]DMIRAL [201]NDUSTRY # OF [215]ORLDS # OF [211]HIPS"
  348. 10026 PRINT"[162][162][162][162][162][162][162] [162][162][162][162][162][162][162] [162][162][162][162][162][162][162][162][162][162][162] [162][162][162][162][162][162][162][162][162][162]"
  349. 10030 N=0:N2=0:FORP=1TO PN:U=0:S=0:V=0
  350. 10040 FOR W=1 TO WN:IF WC%(W)=P THEN U=U+1:S=S+WS%(W):V=V+WI%(W)
  351. 10050 NEXT W
  352. 10060 FOR F=1 TO 100:IF FC%(F)=P THEN S=S+FS%(F)
  353. 10070 NEXT F
  354. 10080 PRINTPC$(P);PN$(P);TAB(10);PC$(0);V;TAB(20);U;TAB(30);S
  355. 10090 IF U>N THEN N=U:N2=0
  356. 10100 IF U=N THEN N2=N2+1
  357. 10110 NEXT P
  358. 10120 IF PN=1 THEN 10400
  359. 10130 N3=0:PRINT"";:IF N2>1 THEN PRINTPC$(3)"[212]HERE IS A"N2"-WAY TIE!"
  360. 10140 PRINTPC$(0)"[195]ONGRATULATIONS TO [193]DMIRAL";:IF N2>1 THEN PRINT"S";
  361. 10150 FOR P=1 TO PN:U=0
  362. 10160 FOR W=1 TO WN:IF WC%(W)=P THEN U=U+1
  363. 10170 NEXTW
  364. 10180 IFU=NTHENPRINTTAB(28)PC$(P)PN$(P);:N3=N3+1:IFN3>1 THEN PRINTTAB(24)PC$(0)"AND";
  365. 10190 IF U=N THEN PRINT
  366. 10195 NEXT P
  367. 10196 PRINTPC$(3)"VIEW MAP (Y/N) ?"
  368. 10197 WAIT 198,1:GET IN$
  369. 10198 IF IN$="Y" THEN GOSUB 30000
  370. 10199 IF IN$<>"N" THEN GOSUB 1600:GOTO 10196
  371. 10200 PRINTPC$(3)"[193]NOTHER GAME (Y/N) ?"
  372. 10210 WAIT 198,1:GET IN$
  373. 10220 IF IN$="Y" THEN PRINT"[147]":CLR:RUN
  374. 10230 IF IN$<>"N" THEN GOSUB 1600:GOTO 10210
  375. 10240 PRINT"[147][199]OOD-BYE !"CHR$(9):RETURN
  376. 10400 IF U=WN THEN PRINT"[195]ONGRATULATIONS! [217]OU HAVE SUCCEEDED!":GOTO 10196
  377. 10410 PRINT"[201]'M GLAD YOU LOST...YOU DESERVED IT!":GOTO 10196
  378. 10999 RETURN
  379. 20000 REM ***                       ***
  380. 20001 REM *** MAIN PROGRAM          ***
  381. 20002 REM ***                       ***
  382. 20010 REM GOSUB 21000
  383. 20015 GOSUB 22000
  384. 20020 PRINTCHR$(14)PC$(3)"[147][196]O YOU WANT TO SEE THE RULES (Y/N) ?"
  385. 20030 WAIT 198,1:GET IN$
  386. 20040 IF IN$="Y" THEN 20120
  387. 20050 IF IN$="N" THEN 20130
  388. 20060 GOSUB 1600:GOTO 20030
  389. 20120 GOSUB 27000
  390. 20130 GOSUB 28000
  391. 20140 GOSUB 29000
  392. 20150 GOSUB 31000:GOSUB 33000:GOSUB 34000
  393. 20180 T=0:GOSUB 30000
  394. 20190 PRINTD1$"[215]OULD YOU LIKE A"
  395. 20200 PRINTD2$"DIFFERENT MAP ?"
  396. 20210 WAIT 198,1:GET IN$
  397. 20220 IF IN$="Y" THEN GOSUB 30950:PRINTD1$"[208]LEASE WAIT...":GOTO 20140
  398. 20230 IF IN$<>"N" THEN GOSUB 1600:GOTO 20210
  399. 20240 GOSUB 30950
  400. 20250 REM ***                       ***
  401. 20251 REM *** BEGINNING OF GAME     ***
  402. 20252 REM ***                       ***
  403. 20260 T=0
  404. 20265 FOR P=0 TO PN:P%(P)=0:NEXT
  405. 20270 P=INT(PN*RND(0)+1):IF P%(P)=1 THEN 20270
  406. 20275 P%(P)=1:P%(0)=P%(0)+1
  407. 20280 GOSUB 3000:GOSUB 8500
  408. 20290 IF P%(0)<PN THEN 20270
  409. 20295 REM GOSUB 8500
  410. 20300 T=T+1:PRINTD3$""T"":GOSUB 6000
  411. 20310 GOSUB 7000
  412. 20320 FOR W=1 TO WN:W2%(W)=WS%(W):NEXT
  413. 20340 IF T<TN THEN 20265
  414. 20350 GOSUB 10000
  415. 20360 END
  416. 21000 REM ***                       ***
  417. 21001 REM *** INTRODUCTION          ***
  418. 21002 REM ***                       ***
  419. 21010 PRINTCHR$(142)PC$(0)"[147]  WELCOME TO THE GAME OF"
  420. 21020 PRINTPC$(9)" [169]  [223][169]  [223] [169]  [223][169]  [223]        [169]  [223]"
  421. 21030 PRINT"  [162]      [162]   [162]"
  422. 21040 PRINT"               "
  423. 21050 PRINT"  [162]       [146][162]   [146][162]"
  424. 21060 PRINT" [223]  [146][169]        [146] [223]  [146][169]       [146][223]  [146][169]"
  425. 21070 PRINT"           [223][146] [169]    [223]      [223]    "
  426. 21080 PRINT"        [146][223] [146][169]       "
  427. 21090 PRINT"              [146][169]    [146][169]   "
  428. 21100 PRINT"            [146][223][223] "
  429. 21110 PRINT"                 [146][223][223]    "
  430. 21111 PRINTPC$(3)" BY PAUL KELLAM - REDONE BY THE GOPHER!!"
  431. 21114 POKE S+12,96:POKE S+13,0
  432. 21115 POKE S+5,9:POKE S+6,0:POKE S+24,15:GOSUB 39000
  433. 21120 V=53248:POKEV+16,0:POKEV+23,0:POKEV+29,0:POKEV+39,11:POKEV+40,11:POKEV+41,12:POKEV+42,12
  434. 21130 POKEV+21,15:POKE2040,11:POKE2041,13:POKE2042,14:POKE2043,15
  435. 21140 X=-1:X2=23:FOR X1=0 TO 320:X=X+1:X2=X2+1
  436. 21150 Y=150+70*SIN((null)*X1/115)
  437. 21160 POKEV,X:POKEV+4,X:POKEV+2,X2:POKEV+6,X2
  438. 21170 POKEV+1,Y:POKEV+5,Y:POKEV+3,Y:POKEV+7,Y
  439. 21174 IF X2=255 THEN X2=-1:POKEV+16,10
  440. 21175 IF X1=255 THEN POKE V+16,15:X=-1
  441. 21180 IF TI>T THEN GOSUB 39000
  442. 21190 NEXT:POKEV+21,0:POKE S+4,0
  443. 21200 RETURN
  444. 22000 REM ***                       ***
  445. 22001 REM *** INITIALIZE VARIABLES  ***
  446. 22002 REM ***                       ***
  447. 22010 P=1:G1=.8:G2=.03
  448. 23000 REM ***                       ***
  449. 23001 REM *** DIMENSION ARRAYS      ***
  450. 23002 REM ***                       ***
  451. 23010 DIM WS%(40),WC%(40),WX%(40),WY%(40),WI%(40),W2%(40)
  452. 23020 DIM FS%(100),FD%(100),FC%(100),FT%(100),P%(20)
  453. 23030 DIM SO(10,20,4)
  454. 23040 RETURN
  455. 27000 REM ***                       ***
  456. 27001 REM *** INSTRUCTIONS          ***
  457. 27002 REM ***                       ***
  458. 27010 PRINT"[147]"SPC(14)PC$(1)"[201]NSTRUCTIONS"
  459. 27020 PRINTSPC(14)"[192][192][192][192][192][192][192][192][192][192][192][192]"
  460. 27030 PRINTPC$(3)"[212]HE OBJECT OF THIS GAME IS TO CONTROL"
  461. 27040 PRINT"MORE PLANETS BY THE END OF THE GAME THAN"
  462. 27050 PRINT"ANY OF YOUR OPPONENTS.  [212]O DO THIS, YOU"
  463. 27060 PRINT"SEND OUT FLEETS OF SHIPS TO OTHER STARS"
  464. 27070 PRINT"(EACH OF WHICH HAS 1 HABITABLE, AND"
  465. 27080 PRINT"PERHAPS OCCUPIED, PLANET).  [217]OUR HOME"
  466. 27090 PRINT"WORLD HAS AN INDUSTRIAL CAPACITY OF 10"
  467. 27100 PRINT"SHIPS PER YEAR.  [212]HE WORLDS YOU ATTACK"
  468. 27110 PRINT"MAY HAVE INDUSTRIAL CAPACITY AND SHIPS"
  469. 27120 PRINT"ON DEFENSE."
  470. 27130 PRINTPC$(0)"      [208]RESS ANY KEY TO CONTINUE."
  471. 27140 WAIT 198,1:POKE 198,0
  472. 27150 PRINT"[147]";SPC(9);PC$(1)"[201]NSTRUCTIONS [195]ONTINUED"
  473. 27160 PRINTSPC(9);"[192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192]"
  474. 27170 PRINTPC$(3)"[207]RDERS FOR LAUNCHING FLEETS REQUIRE 3"
  475. 27180 PRINT"PIECES OF DATA :"
  476. 27190 PRINTPC$(0)" 1. [208]LANET OF ORIGIN (BY CODE)"
  477. 27200 PRINT" 2. [196]ESTINATION"
  478. 27210 PRINT" 3. # OF SHIPS IN FLEET"
  479. 27220 PRINTPC$(3)"[217]OUR FLEET ORDERS WILL BE INVISIBLE AS"
  480. 27230 PRINT"YOU ENTER THEM TO PROTECT YOUR SECRECY."
  481. 27240 PRINT"[208]RESS "PC$(1)"[210]ETURN"PC$(3)" WHEN YOU ARE FINISHED"
  482. 27250 PRINT"ENTERING ORDERS.  [198]OR HELP, TYPE A '?'."
  483. 27260 PRINTPC$(0)"      [208]RESS ANY KEY TO CONTINUE."
  484. 27270 WAIT 198,1:POKE 198,0
  485. 27280 PRINT"[147]";SPC(9);PC$(1)"[201]NSTRUCTIONS [195]ONTINUED"
  486. 27290 PRINTSPC(9);"[192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192]"
  487. 27300 PRINTPC$(3)"[198]LEETS TRAVEL AT A SPEED OF 3 PER YEAR"
  488. 27310 PRINT"(1 TURN=1 YEAR) AFTER ONE ACCELERATION"
  489. 27320 PRINT"YEAR IN WHICH THEY MOVE ONLY 2."
  490. 27330 PRINT"[211]EPARATE FLEETS ATTACK SEPARATELY, EVEN"
  491. 27340 PRINT"IF THEY ARRIVE AT THE SAME WORLD IN THE"
  492. 27350 PRINT"SAME YEAR.  [207]NCE A FLEET HAS BEEN"
  493. 27360 PRINT"LAUNCHED, ITS ORDERS CANNOT BE CHANGED."
  494. 27370 PRINT"[208]LAYERS WILL MOVE IN A RANDOM ORDER EACH"
  495. 27380 PRINT"TURN."
  496. 27390 PRINTPC$(0)"      [208]RESS ANY KEY TO CONTINUE."
  497. 27400 WAIT 198,1:POKE 198,0
  498. 27410 PRINT"[147]";SPC(9);PC$(1)"[201]NSTRUCTIONS [195]ONTINUED"
  499. 27420 PRINTSPC(9);"[192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192]"
  500. 27430 PRINTPC$(3)"[211]TANDING [207]RDERS ARE SELECTED BY THE '*'"
  501. 27440 PRINT"KEY. [198]LEET ORIGIN, DEST. AND # OF SHIPS"
  502. 27450 PRINT" CAN BE [193]DDED, [195]ANCELED, [205]ODIFIED, OR "
  503. 27460 PRINT"[210]EVIEWED AS NEEDED. [207]RDERS ONCE ENTERED"
  504. 27470 PRINT"WILL OPERATE UNTIL [195]ANCELED. [194]UILD YOUR"
  505. 27480 PRINT"FLEET FROM NEARBY WORLDS WITHOUT TYPING!"
  506. 27490 PRINT"'[194]AD ORDERS' (NOT ENOUGH SHIPS) WON'T"
  507. 27500 PRINT" LAUNCH. '[210]ETURN' GOES BACK TO MENU."
  508. 27510 PRINT" [201]T IS POSSIBLE TO SPY AFTER YOUR TURN!"
  509. 27520 PRINTPC$(0)"      [208]RESS ANY KEY TO CONTINUE."
  510. 27530 WAIT 198,1:POKE 198,0
  511. 27600 PRINT"[147]";SPC(9);PC$(1)"[201]NSTRUCTIONS [195]ONTINUED"
  512. 27610 PRINTSPC(9);"[192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192]"
  513. 27620 PRINTPC$(3)"[212]O PLAY SOLITAIRE, MAKE THE NUMBER OF"
  514. 27630 PRINT"YEARS EQUAL TO THE NUMBER OF WORLDS."
  515. 27640 PRINT"[212]O WIN, YOU MUST CONTROL ALL PLANETS BY"
  516. 27650 PRINT"THE END OF THE GAME."
  517. 27660 PRINT"               "PC$(2)"[199]OOD [204]UCK !"
  518. 27670 PRINTPC$(0)"      [208]RESS ANY KEY TO CONTINUE."
  519. 27680 WAIT 198,1:POKE 198,0
  520. 27690 RETURN
  521. 28000 REM ***                       ***
  522. 28001 REM *** PLAYER INPUT (SETUP)  ***
  523. 28002 REM ***                       ***
  524. 28010 PRINTPC$(3)CHR$(14):INPUT"[200]OW MANY PLAYERS (1-10)   2[157][157][157]";PN
  525. 28020 IF PN<1 OR PN>10 THEN GOSUB 1600:GOTO 28010
  526. 28030 PN=INT(PN)
  527. 28040 FOR A=1 TO PN
  528. 28050 PRINT"[208]LAYER #";A;"IS   [215]HO[157][157][157][157][157]";:INPUT PN$(A)
  529. 28060 IF LEN(PN$(A))>9 THEN PN$(A)=LEFT$(PN$(A),9)
  530. 28070 NEXT A
  531. 28080 MN=5:IF PN>5 THEN MN=PN
  532. 28090 PRINT"[147][200]OW MANY WORLDS ("MN"-40)   10[157][157][157][157]";:INPUT WN
  533. 28100 IF WN<MN OR WN>40 THEN GOSUB 1600:GOTO 28090
  534. 28110 WN=INT(WN)
  535. 28120 PRINT"[200]OW MANY YEARS IN THE GAME (1-100)   1[157][157][157]";:INPUT TNN
  536. 28130 IF TN<1 OR TN>100 THEN GOSUB 1600:GOTO 28120
  537. 28140 PRINT"[196]O YOU WANT THE NEUTRAL WORLDS TO BUILD"
  538. 28150 PRINT"DEFENSIVE SHIPS (Y/N) ?"
  539. 28160 WAIT 198,1:GET IN$:IF IN$<>"Y" AND IN$<>"N" THEN GOSUB 1600:GOTO 28160
  540. 28170 AB=0:IF IN$="Y" THEN AB=1
  541. 28180 PRINT"[208]LEASE WAIT..."
  542. 28190 RETURN
  543. 29000 REM ***                       ***
  544. 29001 REM *** GENERATE STARS        ***
  545. 29002 REM ***                       ***
  546. 29010 WX%(1)=1+INT(RND(0)*20)
  547. 29020 WY%(1)=1+INT(RND(0)*20)
  548. 29030 FOR W=2 TO WN
  549. 29040 WX%(W)=1+INT(RND(0)*20)
  550. 29050 WY%(W)=1+INT(RND(0)*20)
  551. 29060 I=1
  552. 29070 IF WX%(W)=WX%(I) AND WY%(W)=WY%(I) THEN 29040
  553. 29080 I=I+1:IF I<W THEN 29070
  554. 29090 NEXT
  555. 29100 RETURN
  556. 30000 REM ***                       ***
  557. 30001 REM *** SCREEN DISPLAY        ***
  558. 30002 REM ***                       ***
  559. 30010 PRINTCHR$(14);PC$(0);"[147][176][178][178][178][178][178][178][178][178][178][178][178][178][178][178][178][178][178][178][174][176][192][192][192][192][192][192][192][192][178][178][192][192][192][192][192][192][192][192][174]";
  560. 30020 FORA=1TO18:PRINT"[171][219][219][219][219][219][219][219][219][219][219][219][219][219][219][219][219][219][219][179][221]        [221][221]        [221]";:NEXT
  561. 30030 PRINT"[173][177][177][177][177][177][177][177][177][177][177][177][177][177][177][177][177][177][177][189][221]        [221][221]        [221]";
  562. 30040 PRINT"[176][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][174][221]        [221][221]        [221]";
  563. 30045 PRINT"[221]                  [221][221]        [221][221]        [221]";
  564. 30050 PRINT"[221]                  [221][173][192][192][192][192][192][192][192][192][177][177][192][192][192][192][192][192][192][192][189]";
  565. 30060 PRINT"[221]                  [221] [217]EAR :"T
  566. 30070 PRINT"[173][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][189]";
  567. 30075 PRINTSPC(21)"[215] [208]R [211]HP[215] [208]R [211]HP"
  568. 30080 FOR W2=1 TO WN
  569. 30090 PS=40*WY%(W2)+WX%(W2)
  570. 30100 POKE 983+PS,WL%(W2):POKE 55255+PS,PC%(WC%(W2))
  571. 30110 PRINTDO$(W2-20*INT(W2/21))SPC(21+10*INT(W2/21))PC$(WC%(W2))WL$(W2)"[151]";
  572. 30120 IF WC%(W2)<>0 THEN GOSUB 30900
  573. 30130 NEXT:RETURN
  574. 30900 S$=MID$(STR$(WI%(W2)),2):S$=LEFT$("  ",3-LEN(S$))+S$:PRINTPC$(0);S$;
  575. 30910 S$=MID$(STR$(WS%(W2)),2):S$=LEFT$("   ",4-LEN(S$))+S$:PRINTS$;:RETURN
  576. 30950 REM ***                       ***
  577. 30951 REM *** CLEAR BOX             ***
  578. 30952 REM ***                       ***
  579. 30960 PRINTD1$"                  [221]"D2$"                  [221]"D3$"                  [221]"
  580. 30970 RETURN
  581. 31000 REM ***                       ***
  582. 31001 REM *** WORLD INDUSTRY SETUP  ***
  583. 31002 REM ***                       ***
  584. 31010 FOR P=1 TO PN:WI%(P)=10:NEXT
  585. 31020 IF PN=WN THEN RETURN
  586. 31030 FOR W=PN+1 TO WN
  587. 31040 IF RND(0)<.25 THEN 31070
  588. 31050 WI%(W)=WI%(W)+1
  589. 31060 IF RND(0)<.67 THEN 31050
  590. 31070 NEXT W
  591. 31080 RETURN
  592. 33000 REM ***                       ***
  593. 33001 REM *** WORLD CONTROL SETUP   ***
  594. 33002 REM ***                       ***
  595. 33010 FOR P=1 TO PN:WC%(P)=P:NEXT:RETURN
  596. 34000 REM ***                       ***
  597. 34001 REM *** WORLD SHIP SETUP      ***
  598. 34002 REM ***                       ***
  599. 34005 FC=2+RND(0)
  600. 34010 FOR P=1 TO PN
  601. 34020 WS%(P)=12*WN-15*PN
  602. 34030 FOR I=1 TO PN
  603. 34040 WS%(P)=WS%(P)+300/(FNDS(I)+6)
  604. 34050 NEXT I
  605. 34070 FOR W=PN+1 TO WN
  606. 34080 WS%(P)=WS%(P)-100/(FNDS(W)+3)
  607. 34090 NEXT W
  608. 34100 IF WS%(P)<50 THEN WS%(P)=50
  609. 34110 W2%(P)=WS%(P)
  610. 34120 WS%(P)=FC*WS%(P):NEXT P
  611. 34200 FOR W=PN+1 TO WN
  612. 34210 WS%(W)=WS%(W)+(WI%(W)+2.2)*RND(0)
  613. 34220 IF RND(0)<.67 THEN 34210
  614. 34230 W2%(W)=WS%(W)
  615. 34240 NEXT W
  616. 34250 RETURN
  617. 38999 END
  618. 39000 REM ***                       ***
  619. 39001 REM *** NEXT NOTE IN TUNE     ***
  620. 39002 REM ***                       ***
  621. 39010 POKES+4,16:POKES+11,32:READNT,DR
  622. 39020 T=TI+12*DR:POKES,HF%(NT):POKES+1,LF%(NT)
  623. 39025 POKES+7,HF%(NT):POKES+8,LF%(NT):POKES+11,33:POKE S+4,17
  624. 39030 RETURN
  625. 39997 REM ***                       ***
  626. 39998 REM *** COLOURS (#,CHAR)      ***
  627. 39999 REM ***                       ***
  628. 40000 DATA  11,"[152]",1,"",2,"",4,"[156]",5,"",6,"",0,"[144]",14,"[154]",7,"[158]",0,"[144]"
  629. 40010 DATA 16,"[144]"
  630. 40020 REM ***                       ***
  631. 40021 REM *** NOTE VALUES           ***
  632. 40022 REM ***                       ***
  633. 40030 DATA 0,0,4,251,5,152,6,71,7,12,7,119,8,97,9,104,9,247,10,143,11,48
  634. 40040 REM ***                       ***
  635. 40041 REM *** RULE BRITANNIA!       ***
  636. 40042 REM ***                       ***
  637. 40045 DATA 7,2,0,1,7,1,8,1,8,1,0,1,7,1,8,1.5,7,.5,6,1,5,1,4,3,0,1
  638. 40046 DATA 10,2,8,2,7,.5,5,.5,8,.5,6,.5,10,1,8,1,7,2,6,2,5,3,0,4
  639. 40050 DATA 2,1,5,2,5,2,5,.5,6,.5,7,.5,8,.5,10,1,5,1,6,3,7,.5,8,.5,7,2,0,1,2,1
  640. 40060 DATA 5,.5,6,.5,5,.5,6,.5,7,.5,8,.5,7,.5,8,.5,10,1,6,1,7,1,6,1
  641. 40061 DATA 5,1,6,.5,7,.5,6,1,5,1,4,3,2,1
  642. 40070 DATA 4,1,2,1,6,1,4,1,10,1,9,.5,7,.5,6,1,5,1,4,2,3,1,2,1,2,2,0,2
  643. 40080 DATA 5,2,5,1.5,2,.5,3,1,1,1,0,1,5,1,8,1,7,1,6,1,5,1,4,2,0,1,6,1
  644. 40090 DATA 10,2,8,2,7,.5,5,.5,8,.5,6,.5,10,1,8,1,7,2,6,2,5,2,0,2
  645. 41000 DATA 7,2,0,1,7,1,8,1,8,1,0,1,7,1,8,1.5,7,.5,6,1,5,1,4,3,0,1
  646. 41010 DATA 10,2,8,2,7,.5,5,.5,8,.5,6,.5,10,1,8,1,7,2,6,2,5,3,0,100
  647.